home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / p / pov / povlisti.ngs / piece3.pov < prev    next >
Encoding:
Text File  |  1992-07-02  |  8.0 KB  |  275 lines

  1. // Persistence Of Vision raytracer version 1.0 sample file.
  2.  
  3. // piece 3
  4. // by Truman Brown (12/91)
  5.  
  6. // Due to the large number of objects, you will probably have to
  7. // have a lot of memory to render this scene.
  8. // Rendering time using a 25Mhz 386 w/Cyrix fpu is approximately 60 hours.
  9.  
  10. // The lighting is intentionally dim when the image is rendered.
  11. // You can enhance the image using PicLab's gamma, brightness, and
  12. // contrast command when you post-process the image.
  13.  
  14. #include "colors.inc"
  15. #include "textures.inc"
  16. #include "shapes.inc"
  17.  
  18. #declare YourTexture =
  19. texture {  /* Dan Farmer's oak texture { */
  20.    wood
  21.    turbulence 0.05
  22.    color_map {
  23.       [0.00 0.10 color red 0.42 green 0.26 blue 0.15
  24.       color red 0.42 green 0.26 blue 0.15]
  25.       [0.10 0.90 color red 0.42 green 0.26 blue 0.15
  26.       color red 0.52 green 0.37 blue 0.26]
  27.       [0.90 1.01 color red 0.52 green 0.37 blue 0.26
  28.       color red 0.52 green 0.37 blue 0.26]
  29.    }
  30.    rotate <90 0 0>
  31.    scale <3 3 3>
  32. }
  33.  
  34. #declare BallTexture1 = /* Shiny sugar candy red */
  35. texture {
  36.    color Firebrick
  37.    ambient 0.0
  38.    diffuse 0.6
  39.    specular 1.00
  40.    roughness 0.0
  41. }
  42.  
  43. #declare RodTexture1 = /* Dim goldish */
  44. texture {
  45.    color Sienna
  46.    ambient 0.0
  47.    diffuse 0.6
  48.    specular 1.00
  49.    roughness 0.0
  50. }
  51.  
  52. #include "curly-q.inc" /* 1251 spheres rotating around in a ring    */
  53. /* brought to you by Spiral 2.0 and ctds 1.6 */
  54.  
  55. camera {
  56.    location  <  7.0     50.0 -30.0 > /* Up high and in close.         */
  57.    direction <  0.0      0.0   2.0 > /* Though this doesn't highlight */
  58.    up        <  0.0      1.0   0.0 > /* the height of the piece, it   */
  59.    right     <  1.33333  0.0   0.0 > /* gives the effect i'm looking  */
  60.    look_at   <  0.0     15.0   0.0 > /* for.  Feel free to change.    */
  61. }/* end_view_point */
  62.  
  63. object {
  64.    light_source { <99 70 -90>
  65.       color red 0.1 green 0.1 blue 0.1
  66.    }
  67. }
  68.  
  69. object {
  70.    light_source { <-35 80 -80>
  71.       color red 0.5 green 0.5 blue 0.5
  72.    }
  73. }
  74.  
  75. #declare xrod = /* Horizontal left-right rod floating at <0 0 0> */
  76. object {
  77.    quadric { Cylinder_X }
  78.    clipped_by {
  79.       plane { < 1.0 0.0 0.0> 100.0 }
  80.       plane { <-1.0 0.0 0.0> 100.0 }
  81.    }
  82.    texture {
  83.       RodTexture1
  84.    }
  85.    scale <1.0 0.3 0.3>
  86. }
  87.  
  88. #declare zrod = /* Horizontal in-out rod floating at <0 0 0> */
  89. object {
  90.    quadric { Cylinder_Z }
  91.    clipped_by {
  92.       plane { < 0.0 0.0  1.0> 100.0 }
  93.       plane { < 0.0 0.0 -1.0> 100.0 }
  94.    }
  95.    texture {
  96.       RodTexture1
  97.    }
  98.    scale <0.3 0.3 1.0>
  99. }
  100.  
  101. composite {                                      /* Build a floor grid */
  102.    object { zrod translate <-100 0 0> } /* extending beyond   */
  103.    object { zrod translate < -92 0 0> } /* camera view to be  */
  104.    object { zrod translate < -84 0 0> } /* captured in reflec-*/
  105.    object { zrod translate < -76 0 0> } /* tions.             */
  106.    object { zrod translate < -68 0 0> }
  107.    object { zrod translate < -60 0 0> }
  108.    object { zrod translate < -52 0 0> }
  109.    object { zrod translate < -44 0 0> }
  110.    object { zrod translate < -36 0 0> }
  111.    object { zrod translate < -28 0 0> }
  112.    object { zrod translate < -20 0 0> }
  113.    object { zrod translate < -12 0 0> }
  114.    object { zrod translate <  -4 0 0> }
  115.    object { zrod translate <   4 0 0> }
  116.    object { zrod translate <  12 0 0> }
  117.    object { zrod translate <  20 0 0> }
  118.    object { zrod translate <  28 0 0> }
  119.    object { zrod translate <  36 0 0> }
  120.    object { zrod translate <  44 0 0> }
  121.    object { zrod translate <  52 0 0> }
  122.    object { zrod translate <  60 0 0> }
  123.    object { zrod translate <  68 0 0> }
  124.    object { zrod translate <  76 0 0> }
  125.    object { zrod translate <  84 0 0> }
  126.    object { zrod translate <  92 0 0> }
  127.    object { zrod translate < 100 0 0> }
  128.  
  129.    object { xrod translate < 0 0 -100> }
  130.    object { xrod translate < 0 0  -92> }
  131.    object { xrod translate < 0 0  -84> }
  132.    object { xrod translate < 0 0  -76> }
  133.    object { xrod translate < 0 0  -68> }
  134.    object { xrod translate < 0 0  -60> }
  135.    object { xrod translate < 0 0  -52> }
  136.    object { xrod translate < 0 0  -44> }
  137.    object { xrod translate < 0 0  -36> }
  138.    object { xrod translate < 0 0  -28> }
  139.    object { xrod translate < 0 0  -20> }
  140.    object { xrod translate < 0 0  -12> }
  141.    object { xrod translate < 0 0   -4> }
  142.    object { xrod translate < 0 0    4> }
  143.    object { xrod translate < 0 0   20> }
  144.    object { xrod translate < 0 0   36> }
  145.    object { xrod translate < 0 0   52> }
  146.    object { xrod translate < 0 0   64> }
  147.    object { xrod translate < 0 0   72> }
  148.    object { xrod translate < 0 0   80> }
  149.    object { xrod translate < 0 0   88> }
  150.    object { xrod translate < 0 0  100> }
  151.    bounded_by {
  152.       intersection {
  153.          Cube
  154.          scale <101.0 0.5 101.0>
  155.       }
  156.    }
  157. }
  158.  
  159. object { /* Big ellipsoid to reflect stuff */
  160.    quadric {
  161.       Ellipsoid
  162.       scale <6.25 4.0 6.25>
  163.       translate <0.0 14.5 0.0>
  164.    }
  165.    texture {
  166.       color SteelBlue
  167.       ambient 0.0
  168.       diffuse 0.6
  169.       reflection 0.99
  170.       specular 1.0
  171.       roughness 0.0
  172.    }
  173. }
  174.  
  175. object { /* Sub-plane { to reflect poles and curly-q */
  176.    plane { <0 1 0> -1.5 }
  177.    texture {
  178.       marble
  179.       turbulence 0.65
  180.       color_map {
  181.          [0.0   0.67   color Black
  182.          color DimGray]
  183.          [0.67  0.775  color DimGray
  184.          color SteelBlue]
  185.          [0.775 1.001  color SteelBlue
  186.          color Black]
  187.       }
  188.       ambient 0.05
  189.       diffuse 0.75
  190.       specular 1.0
  191.       roughness 0.00002432
  192.       reflection 0.95
  193.       scale <10 8 8>
  194.       scale <20 20 20> /* Double scaled while debugging. */
  195.    }                /* This gets the gray under the   */
  196. }              /* curly-q and gets the blue to   */
  197. /* reflect off the curly-q nicely.*/
  198. composite { spiral translate <0.0 14.75 0.0> } /* The curly-q! */
  199.  
  200. #declare ball = /* Ball to top poles placed inside of curly-q */
  201. object {
  202.    sphere { <0 14.75 0> 2 }
  203.    texture {
  204.       color Firebrick
  205.       reflection 0.95
  206.       ambient 0.0
  207.       diffuse 0.5
  208.       specular 1.0
  209.       roughness 0.0
  210.    }
  211. }
  212.  
  213. #declare pole = /* Pole to be placed inside of curly-q */
  214. object {
  215.    intersection {
  216.       Disk_Y
  217.       scale <0.5 14.75 0.5>
  218.    }
  219.    texture {
  220.       color Firebrick
  221.       reflection 0.95
  222.       ambient 0.0
  223.       diffuse 0.5
  224.       specular 1.0
  225.       roughness 0.0
  226.    }
  227. }
  228. /* Construct the poles. */
  229. object { pole translate <11 0 0> rotate <0  18 0> } /* Could have made this */
  230. object { pole translate <11 0 0> rotate <0  54 0> } /* a composite {, but     */
  231. object { pole translate <11 0 0> rotate <0  90 0> } /* didn't see the point.*/
  232. object { pole translate <11 0 0> rotate <0 126 0> }
  233. object { pole translate <11 0 0> rotate <0 162 0> }
  234. object { pole translate <11 0 0> rotate <0 198 0> }
  235. object { pole translate <11 0 0> rotate <0 234 0> }
  236. object { pole translate <11 0 0> rotate <0 270 0> }
  237. object { pole translate <11 0 0> rotate <0 306 0> }
  238. object { pole translate <11 0 0> rotate <0 342 0> }
  239. /* Construct the balls. */
  240. object { ball translate <11 0 0> rotate <0  18 0> }
  241. object { ball translate <11 0 0> rotate <0  54 0> }
  242. object { ball translate <11 0 0> rotate <0  90 0> }
  243. object { ball translate <11 0 0> rotate <0 126 0> }
  244. object { ball translate <11 0 0> rotate <0 162 0> }
  245. object { ball translate <11 0 0> rotate <0 198 0> }
  246. object { ball translate <11 0 0> rotate <0 234 0> }
  247. object { ball translate <11 0 0> rotate <0 270 0> }
  248. object { ball translate <11 0 0> rotate <0 306 0> }
  249. object { ball translate <11 0 0> rotate <0 342 0> }
  250.  
  251. #declare Connector_1 =
  252. object {
  253.    quadric {
  254.       < 0.0  1.0  1.0>
  255.       < 0.0  0.0  0.0>
  256.       < 0.0  0.0  0.0>
  257.       -1.0
  258.    }
  259.    clipped_by {
  260.       plane { < 1.0  0.0  0.0> 1.0 }
  261.       plane { <-1.0  0.0  0.0> 0.0 }
  262.    }
  263.    texture {
  264.       color DimGray
  265.       ambient 0.0
  266.       diffuse 0.6
  267.       specular 1.0
  268.       roughness 0.0
  269.       reflection 0.25
  270.    }
  271. }
  272.  
  273. #include "links.inc" /* Poles linking interior balls and poles */
  274. composite { links rotate <0 18 0> translate <0.0 14.75 0.0> }
  275.